/**
 * 
 */

/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  poolint.pulldata;

import poolint.pull.tablename.IntegratePool;

import utility.CapitalChar;


/**
 * @author kubuntu
 *
 */
public class Mod extends Pulloperation 
{
	public Mod() 
	{
		request = reflactSchemaProperty;
	}
	
	@SuppressWarnings("unchecked")
	/*public boolean performOperation() 
	{
		
		generateProductHash();
		generateModuleHash();
		
		IntegratePool integratePool;
		try
		{
			Class C = Class.forName("poolint.pull.tablename."+CapitalChar.makeFirstCharCapital(poolTablename));
			integratePool = (IntegratePool) C.newInstance();	
			
			integratePool.setColumnName(columnName);
			integratePool.setDatabase(dbsql);
			integratePool.setIntegrationObject(integrationObject);
			integratePool.setNewColumnValue(columnValue);
			integratePool.setOldColumnValue(oldcolumnNameValue);
			integratePool.setTableName(tableName);
			integratePool.setProcess(process);		
			
			return integratePool.update(productTableHash,ModuleHash);	
			
		} catch (Exception e) 
		{
			e.printStackTrace();
		}
		return true;
	}*/
	
	
	
	public boolean performOperation() 
	{
		
		generateProductHash();
		generateModuleHash();
		
		IntegratePool integratePool;
		try
		{
			Class C = Class.forName("poolint.pull.tablename."+CapitalChar.makeFirstCharCapital(poolTablename));
			integratePool = (IntegratePool) C.newInstance();	
			
			integratePool.setColumnNameValue( columnNameValue );
			integratePool.setIntegrationObject(integrationObject);
			//integratePool.setNewColumnValue(columnValue);
			integratePool.setOldColumnNameValue( oldColumnNameValue );
			integratePool.setTableName(tableName);
			integratePool.setProcess(process);		
			
			return integratePool.update(productTableHash,ModuleHash);	
			
		} catch (Exception e) 
		{
			e.printStackTrace();
		}
		return true;
	}
	
	
	
		
	/*public boolean performOperation1() 
	{
		Vector<Object> propertyVector= new Vector<Object>();
		
		//System.out.println(" HashTable : " + productTableHash );
		generateProductHash();
		generateModuleHash();
		propertyVector.addAll(getPropertyVector());
		
		System.out.println(" Vector : " + propertyVector);
		
		*//** It will insert into M & PL of the POOLDB. **//*
		String master = tableName + "_" + oldcolumnNameValue;
		
		
		*//** Before Update, it will check whether master name is already present or not into the database. **//*
		
		String tempStr = ""; // If object not found in Master than it will get error, and it will insert into database.
		try
		{
			tempStr = getMaster(oldcolumnNameValue);
			
			System.out.println(" Integration::Operation::performOperation::Mod:: Update process....");
			Hashtable<Object, Object> tempVec = new Hashtable<Object, Object>();
			tempVec.put("mid", gin.getItem(tempStr));
			tempVec.put("pid", columnName);
			tempVec.put("pv", oldcolumnNameValue);
			Vector<Object> oldVector = new Vector<Object>(); 
			oldVector.add(tempVec);
			
			*//**Setting request parameters like process, user name, password, etc.*//*
			setRequestParameter();
			
			*//**Updating property in Property_details.*//*
			Property_details_Bean pdb = new Property_details_Bean();
			pdb.setDBManager(dbsql);
			pdb.setReqParam(req);
			pdb.setOldPropertyVector(oldVector);
			pdb.setNewPropertyVector(propertyVector);

			*//** It will update record into database.*//*
			System.out.println(" Integration::Operation::performOperation:: Update Message : " + pdb.update());
		}
		catch (Exception e) 
		{
			System.out.println(" Integration::Operation::performOperation Property Not Present in the database...");
			
			Add add = new Add();
			add.performOperation();
		}			
		return true;
	}*/
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
